home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / data / nyan_e2 / nyane2_a.plp < prev    next >
Text File  |  1993-11-30  |  19KB  |  808 lines

  1. /*********   自動的にNiftyに接続し,目的の処理を行う  v1.04a用  *********/
  2. %FNameTop    logd    |{\UP\};
  3. %IndexFName    FNameTop|{INDEX.TXT};
  4. %SaveFName    FNameTop|{SAVE.TXT};
  5. var IndexLine[82];
  6. var status[3];
  7. var ReLogin[3];
  8. var next[3];
  9. var contime[2];
  10. var nowtime[2];
  11. var sectime[2];
  12. var rtn2[700];
  13. rtn2:=rtn;
  14.  
  15. %TimeOut{
  16.     %errlog    logd|{\AUTO.ERR};
  17.     write(errlog,@laststr(128));
  18.     case(Mode,
  19.     {AUTO},{
  20.         discon;
  21.         stopterm;
  22.     },{OPER},{
  23.         Bell;
  24.         select({一定時間内に期待した文字列が受信されませんでした},
  25.         300,{discon; stop;
  26.         },{  回線を切断し,処理を打ち切る  },{ discon; stop;
  27.         },{         処理を打ち切る         },{ stop;
  28.         },{       手動操作で復旧する       },{ MANUAL;
  29.         });
  30.     });
  31. };
  32.  
  33. %rec2{[FILE]
  34.     delfile(FILE);
  35.     receive(FILE);
  36. };
  37.  
  38. %autoacc2{
  39.     var Where1[8];
  40.     var Where2[8];
  41.     var Where3[3];
  42.     var Where4[3];
  43.     var Where4o[3];
  44.     var FMesNO[2];
  45.     var FNAME1[8];
  46.     var FNAME2[8];
  47.     var FNAME3[8];
  48.     var FNAME4[8];
  49.     var FNAMES[64];
  50.     var FNAMEC[2];
  51.     var FLibNO[2];
  52.  
  53. /**********   NIFTYに入る処理   **********/
  54.     %NIF{
  55.     footnote({ NIFTY-Serveに入ります});
  56.     type({GO NIF\n});
  57.     loop({
  58.         wait(60,{TimeOut},
  59.              {に戻る\n>},{type({1\n});im({No})},
  60.              {の表示\n>},{type({1\n});im({No})},
  61.              {\n>},      {type({\n});im({Yes})})
  62.     });
  63.     contime := @tail(@daylong,{:});
  64.     wait(60,{TimeOut},{\n>},);
  65.     Where4 := {NIF};
  66.     };
  67.  
  68. /**********   CUGに入る処理   **********/
  69.     %CUG{
  70.     footnote({ CUGに入ります});
  71.     type({GO }|cugname|{\n});
  72.     contime := @tail(@daylong,{:});
  73.     wait(60,{TimeOut},{\n>},);
  74.     Where4 := {CUG};
  75.     };
  76.  
  77. /**********   未読のメールをダウンする   **********/
  78.     %GoMail{
  79.     type({MAIL\n});
  80.     loop({
  81.         wait(20,{TimeOut},
  82.         {\n>},{
  83.             type({SET MENU OFF\n});
  84.             im({Yes});
  85.         },{\nMAIL>},{
  86.             Where1:={MAIL};
  87.             type({SET PAGE OFF\n});
  88.             wait(30,{TimeOut},{\nMAIL>});
  89.             im({No});
  90.         },{後ほどのご利用をお願いします。},{
  91.             wait(60,{TimeOut},{\n>});
  92.             im({No});
  93.         });
  94.     });
  95.     };
  96.  
  97.     %Mail2 {[prompt,post]
  98.     loop({
  99.         wait(180,{TimeOut},
  100.         {バイナリーのため、表示出来ません◆\n},{Bflg:={Yes};im({Yes})},
  101.         {NAPLPSのデコーダーが必要です。準備 (1:OK  2:NG) \n:},
  102.             {type({2\n}); Bflg:={Yes}; im({Yes})},
  103.         {2:NG) \n:}    ,{type({2\n});im({Yes})},
  104.         {終了)\n>}    ,{type({\n}); im({Yes})},
  105.         {終了)\n:}    ,{type({2\n});im({Yes})},
  106.         {\naction:}    ,{type(post|{\n});im({Yes})},
  107.         {終了)\n>}    ,{im({No})},
  108.         prompt        ,{im({No})}
  109.         )
  110.     })
  111.     };
  112.  
  113.     %MailRall{[prompt]
  114.     var Rno[2];
  115.     wait(120,{TimeOut},
  116.     {\n番号},{
  117.         Rno:=@tail(@laststr,{\n受信数:},{\n番号});
  118.         case(@getchar(Rno,2,1)={ },{Yes},{
  119.             Rno:=@getchar(Rno,1,1);
  120.         });
  121.     });
  122.     wait(120,{TimeOut},{\n>},{stoprec});
  123.     loop({
  124.         type(Rno|{,});
  125.         Rno:=Rno-1;
  126.         im(Rno>0);
  127.     });
  128.     receive(MailLog);
  129.     type(@xc({08})|{\n});
  130.     Mail2(prompt,{DEL});
  131.     };
  132.  
  133.     %Bmail2{[post,kind]
  134.     var fno[4];
  135.     %nametop logd|{\MAIL\};
  136.     %Rfname{
  137.         fno:=0;
  138.         loop({ fno:=fno+1;
  139.             %Bin    @filechk(nametop|{MAIL}|fno|{.LZH});
  140.             %Npb    @filechk(nametop|{MAIL}|fno|{.NPB});
  141.             im(Bin={Yes}||Npb={Yes});
  142.         });
  143.         %SUP    nametop|{MAIL}|fno|{.SUP};
  144.         %BIN    nametop|{MAIL}|fno|{.LZH};
  145.         %NPB    nametop|{MAIL}|fno|{.NPB};
  146.         delfile(SUP);
  147.         write(SUP,@memo(1,curline,1));
  148.         case(kind={B},{Yes},{type(BIN|{\n})});
  149.         case(kind={N},{Yes},{type(NPB|{\n})});
  150.     };
  151.     loop({
  152.         wait(6000,{TimeOut},
  153.         {終了)\n:}    ,{Rfname; im({Yes})},
  154.         {終了)\n>}    ,{type({\n}); im({Yes})},
  155.         {しない)\n:}    ,{type(post|{\n});im({Yes})},
  156.         {終了)\n>}    ,{im({No})},
  157.         {\nMAIL>}    ,{im({No})}
  158.         )
  159.     });
  160.     };
  161.  
  162.     %PreBmail{
  163.     test(,{GoMail},{\nMAIL>},);
  164.     rec2(TitleF);
  165.     type({READ\n});
  166.     wait(120,{TimeOut},{\n>},{stoprec});
  167.     type({E\n});
  168.     wait(120,{TimeOut},{\nMAIL>});
  169.     };
  170.  
  171.     %Bmail{
  172.     mclear(1);
  173.     mread(TitleF,1);
  174.     curline:=@nolmemo(1);
  175.     loop({
  176.         curline:=curline-1;
  177.         %R @getchar(@memo(1,curline,1),2,3);
  178.         %T @getchar(@memo(1,curline,1),30,1);
  179.         case(T={B}||T={N},
  180.         {Yes},{
  181.             case(mail,
  182.             {NEW},{
  183.                 case(@getchar(@memo(1,curline,1),1,1)={ },
  184.                 {Yes},{
  185.                     type({DOWN }|R|{ PROT:BPL\n});
  186.                     Bmail2({2},T);
  187.                 });
  188.             },{ALL},{
  189.                 type({DOWN }|R|{ PROT:BPL\n});
  190.                 Bmail2({1},T);
  191.             });
  192.         });
  193.         im(curline>4);
  194.     });
  195.     };
  196.  
  197.     %MailDown{[prompt]
  198.     %MailLog logd|{\MAIL\MAIL.LOG};
  199.     %TitleF  logd|{\MAIL\MAILLIST.LOG};
  200.     var curline[2];
  201.     var Bflg[3];
  202.     wait(20,{TimeOut},prompt);
  203.     case(Rmail={},
  204.     {Yes}, { GoMail;
  205.     },{No},{ %ForumDir logd|{\}|@head(Rmail,{ });
  206.          GoForum(Rmail);
  207.     });
  208.     Bflg:={No};
  209.     mkdir(logd,{MAIL});
  210.     test(,{
  211.     },{\nMAIL>},{
  212.         case(mail,
  213.         {NEW},{
  214.             receive(MailLog);
  215.             type({READ NEW\n});
  216.             Mail2({\nMAIL>},{SAV});
  217.             stoprec;
  218.         },{ALL},{
  219.             rec2(TitleF);
  220.             type({READ\n});
  221.             MailRall({\nMAIL>});
  222.             stoprec;
  223.         });
  224.     },{\nFORUM>},{
  225.         rec2(TitleF);
  226.         type({RMAIL\n});
  227.         case(mail,
  228.           {ALL},{
  229.             MailRall({\nFORUM>});
  230.             stoprec;
  231.         },{NEW},{
  232.             var Read[3];
  233.             Read:={No};
  234.             wait(120,{TimeOut},{\n>},{stoprec});
  235.             mclear(1);
  236.             mread(TitleF,1);
  237.             curline:=@nolmemo(1);
  238.             loop({
  239.             curline:=curline-1;
  240.             case(@getchar(@memo(1,curline,1),1,1)={ },
  241.             {Yes},{
  242.                 case(@getchar(@memo(1,curline,1),30,1),
  243.                 { },  {
  244.                 %R @tail(@getchar(@memo(1,curline,1),1,3),{ });
  245.                 type(R|{,});
  246.                 Read:={Yes};
  247.                 },{B},{
  248.                 Bflg:={Yes};
  249.                 });
  250.             });
  251.             im(curline>4);
  252.             });
  253.             case(Read,
  254.             {Yes},{
  255.             receive(MailLog);
  256.             type(@xc({08})|{\n});
  257.             Mail2({\nFORUM>},{SAV});
  258.             stoprec;
  259.             });
  260.         });
  261.     });
  262.     case(Bflg,{Yes},{
  263.         case(Mode,
  264.           {AUTO},{ PreBmail;    Bmail;
  265.         },{OPER},{
  266.             PreBmail;
  267.             select({ バイナリメールを受信しますか?},5,{ Bmail;
  268.                 },{ は  い },{ Bmail;
  269.                 },{ いいえ },{
  270.             });
  271.         });
  272.     });
  273.     Where1:={MAIL};
  274.     };
  275.  
  276. /**********   HP,パティオに入る   **********/
  277.     %GoHPpatio{[HorP,name,pass]
  278.     var cond[1];
  279.     cond:=0;
  280.     test(,    {type({GO }|HorP|{\n})},
  281.         {分のHP)\n:},    {type(name|{\n})},
  282.         {\nHP>},    {case(HorP,
  283.                  {HP},{type({MOVE }|name|{\n});
  284.                  },,{type({GO PATIO\n});
  285.                  });    },
  286.         {ご案内\n>},    {type({1\n})},
  287.         {分のパティオ)\n:},{type(name|{\n})},
  288.         {に入る\n>},    {type({2\n})}
  289.     );
  290.     loop({
  291.         wait(60,{TimeOut},
  292.           {に入る\n>},    {case(cond==0,
  293.                  {Yes}, {type({2\n}); Where1:=HorP; im({Yes});
  294.                  },{No},{im({No});
  295.                  });
  296.         },{ご案内\n>},    {case(cond==0,
  297.                  {Yes}, {type({1\n}); Where1:=HorP; im({Yes});
  298.                  },{No},{im({No});
  299.                  });
  300.         },{ています◆},    {cond:=1;
  301.                  im({Yes});
  302.         },{りません◆},    {wait(60,{TimeOut},
  303.                     {\nHP>}, {    cond:=1;
  304.                             type({E\n});
  305.                             im({Yes});
  306.                     },{\n>},{    im({No});
  307.                     });
  308.         },{後ほどのご利用をお願いします。},
  309.                 {wait(10,{TimeOut},{\n>});
  310.                  im({No});
  311.         },{分のHP)\n:},{type(name|{\n}); im({Yes})
  312.         },{分のパティオ)\n:},{type(name|{\n});im({Yes})
  313.         },{ワード\n:},    {type(pass|{\n}); im({Yes})
  314.         },{\nHP>},    {type({SET PAGE OFF\n});
  315.                  Where2:=name;
  316.                  wait(60,{TimeOut},{\nHP>});
  317.                  im({No})
  318.         },{\n>},    {type({1\n});im({Yes})
  319.         },{\nPATIO(N)>},{type({SET PAGE OFF\n});
  320.                  Where2:=name;
  321.                  wait(60,{TimeOut},{\nPATIO(N)>});
  322.                  im({No})
  323.         },{\nPATIO(P)>},{type({SET PAGE OFF\n});
  324.                  Where2:=name;
  325.                  wait(60,{TimeOut},{\nPATIO(P)>});
  326.                  im({No})
  327.         });
  328.     });
  329.     };
  330.  
  331. /**********   HPの未読をダウンする   **********/
  332.     %oneHP {[name,pass,fname] 
  333.     footnote({ HPの受信処理をしています});
  334.     rec2(fname|{.tlt});
  335.     GoHPpatio({HP},name,pass);
  336.     test(,{stoprec},{\nHP>},{
  337.         stoprec;
  338.         receive(fname|{.log});
  339.         type({READ NEW\n});
  340.         wait(300,{TimeOut},{\nHP>});
  341.         stoprec;
  342.         case(id=name && GUEST<>{NG},{Yes},{
  343.             rec2(fname|{.usr});
  344.             type({GUEST\n});
  345.             wait(300,{TimeOut},{\nHP>});
  346.             stoprec;
  347.         })
  348.     })
  349.     };
  350.  
  351.     %HP{
  352.     var hp2[500];
  353.     mkdir(logd,{HP});
  354.     hp2:=hp;
  355.      case( Where4<>{NIF},{Yes},NIF);
  356.     loop({
  357.         %hpset @head(hp2,{,});
  358.         hp2:=@body(hp2,{,});
  359.         oneHP(  @head(hpset,{/}),
  360.             @body(hpset,{/},{/}),
  361.             logd|{\HP\}|@tail(hpset,{/}));
  362.         im(hp2<>{});
  363.     });
  364.     };
  365.  
  366. /**********   パティオの未読をダウンロードする   **********/
  367.     %onepatio1{
  368.     stoprec;
  369.     receive(fname|{.log});
  370.     type({MREAD\n});
  371.     wait(3000,{TimeOut},{\nPATIO(N)>},,{\nPATIO(P)>});
  372.     stoprec;
  373.     case(id=name && GUEST<>{NG},{Yes},{
  374.         delfile(fname|{.usr});
  375.         receive(fname|{.usr});
  376.         type({E\n});
  377.         wait(300,{TimeOut},{\n>},{type({GUEST\n})});
  378.         wait(300,{TimeOut},{\n>});
  379.         stoprec;
  380.     })
  381.     };
  382.  
  383.     %onePatio {[name,pass,fname] 
  384.     delfile(fname|{.tlt});
  385.     footnote({ パティオの受信処理をしています});
  386.     receive(fname|{.tlt});
  387.     GoHPpatio({PATIO},name,pass);
  388.     test(,{stoprec},{\nPATIO(N)>},{onepatio1},{\nPATIO(P)>},{onepatio1});
  389.     };
  390.  
  391.     %Patio{
  392.     var patio2[200];
  393.     mkdir(logd,{PATIO});
  394.     case( Where4<>{NIF},{Yes},NIF);
  395.     patio2:=patio;
  396.     loop({
  397.         %patioset @head(patio2,{,});
  398.         patio2:=@body(patio2,{,});
  399.         onePatio(@head(patioset,{/}),
  400.              @body(patioset,{/},{/}),
  401.              logd|{\PATIO\}|@tail(patioset,{/}));
  402.         im(patio2<>{});
  403.     });
  404.     };
  405.  
  406. /**********   フォーラムの未読をダウンロードする   **********/
  407.     %GoForum{[fname]
  408.     %SetMode{
  409.         type({SET PAGE OFF\n});
  410.         wait(30,{TimeOut},{\nFORUM>});
  411.         type({SEND OFF\n});
  412.         wait(30,{TimeOut},{\nFORUM>});
  413.         type({UST2\n});
  414.         wait(60,{TimeOut},{\nFORUM>});
  415.         Where1:={FORUM};
  416.         Where2:=fname;
  417.         Where3:={};
  418.     };
  419.  
  420.     %Fname{
  421.         wait({60},{TimeOut},{>    });
  422.         wait({60},{TimeOut},{\n});
  423.         FNAMES:=@tail(@laststr(64),{>    },{\n});
  424.         FNAME1:={};
  425.         FNAME2:={};
  426.         FNAME3:={};
  427.         FNAME4:={};
  428.         FNAMEC:=1;
  429.         loop({
  430.             %fname    @head(FNAMES,{ });
  431.             FNAMES:=@body(FNAMES,{ or });
  432.             case(FNAMEC,
  433.               1,{FNAME1:=fname},2,{FNAME2:=fname
  434.             },3,{FNAME3:=fname},4,{FNAME4:=fname
  435.             });
  436.             FNAMEC:=FNAMEC+1;
  437.             im(FNAMES<>{})
  438.         });
  439.     };
  440.  
  441.     %cmark    @getchar(fname,1,1);
  442.     case(cmark={_},
  443.     {Yes},{Where4o:={CUG};
  444.     },{No},{Where4o:={NIF};
  445.     });
  446.     case(Where4<>Where4o,{Yes},{
  447.         case(Where4o,{CUG},CUG,,NIF);
  448.     });
  449.     mkdir(logd,fname);
  450.     rec2(ForumDir|{\title}|{.log});
  451.     %fname1    @tail({_}|fname,{_});
  452.     type({GO }|fname1|{\n});
  453.     loop({
  454.         wait(30,{TimeOut},
  455.           {\n<}    ,{Fname;    im({Yes});
  456.         },{\nmore>}    ,{type({\n});    im({Yes});
  457.         },{終了)\n>}    ,{type({\n});    im({Yes});
  458.         },{システム切り替えにつき},{
  459.                 wait(30,{TimeOut},{\n>});
  460.                 im({No});
  461.         },{現在、サービスは},{
  462.                 wait(30,{TimeOut},{\n>});
  463.                 im({No});
  464.         },{◆番号又はコマンドを入力},{
  465.                 wait(30,{TimeOut},{\n>});
  466.                 im({No});
  467.         },{◆現在このフォーラムは},{
  468.                 wait(30,{TimeOut},{\n>});
  469.                 im({No});
  470.         },{-保守作業の為},{
  471.                 wait(30,{TimeOut},{\n>});
  472.                 im({No});
  473.         },{終了\n>},{
  474.                 type({SET MENU OFF\n});
  475.                 wait(30,{TimeOut},{\nFORUM>});
  476.                 SetMode;
  477.                 im({No});
  478.         },{\nFORUM>},{
  479.                 SetMode;
  480.                 im({No});
  481.         })
  482.     });
  483.     stoprec;
  484.     };
  485.  
  486.     %TypeRTN{[ReqMes]
  487.         %ccs1{
  488.             FMesNO:=ReqMes;
  489.             receive(RTNfile);
  490.             type({RTN\n});
  491.             loop({    wait(1200,{TimeOut},
  492.                 {\nmore>},    {type({\n}); im({Yes})},
  493.                 {\n>},        {stoprec; im({No})},
  494.                 {\n◆現在未読の},{flag:={Yes}; 
  495.                         stoprec; im({No})}
  496.                 );
  497.             });
  498.             case(flag,
  499.             {Yes},{    write(RTNfile,{発言はありません◆\n});
  500.             },,{    write(RTNfile,{\n});    type({\n});
  501.                 wait(30,{TimeOut},{\nCCS(N)>},,{\nCCS(P)>});
  502.                 type({RC MAX\n});
  503.             });
  504.             wait(30,{TimeOut},{\nCCS(N)>},,{\nCCS(P)>});
  505.         };
  506.         %ccs2{
  507.             FMesNO:=ReqMes;
  508.             wait(30,{TimeOut},{\nCCS(N)>},,{\nCCS(P)>});
  509.         };
  510.         var flag[3];
  511.         %RTNfile    ForumDir|{\MES}|ReqMes|{.RTN};
  512.         type({MES }|ReqMes|{\n});
  513.         wait(30,{TimeOut},{ 未読 :0-\n},ccs2,{\nCCS(N)>},ccs1,
  514.             {\nCCS(P)>},ccs1,{\n>});
  515.     };
  516.  
  517.     %CCS{[ccsset]
  518.     %readall{
  519.           %Down3{[boadn]
  520.             %CcsNo{[ccsno]
  521.                 case(@getchar(ccsno,1,1)={ },
  522.                     {Yes},{im({0}|@getchar(ccsno,2,2))},
  523.                     {No}, {im(ccsno)});
  524.             };
  525.             stoprec;
  526.             FMesNO:=@CcsNo(boadn);
  527.             receive(ForumDir|{\MES}|FMesNO|{.log});
  528.         };
  529.         loop({
  530.             wait(10000,{TimeOut},
  531.                 {\n>◆次頁はありません◆\n>},    
  532.                 {wait(3,{im({No})},{\n},{im({Yes})});
  533.             },  {後ほどのご利用をお願いします。\n>},
  534.                 {wait(3,{im({No})},{\n},{im({Yes})});
  535.             },  {\n- }|FNAME1|{  MES(},
  536.                 {wait(60,{TimeOut},{)});
  537.                  Down3(@tail(@laststr,{  MES(},{)}));
  538.                  im({Yes})
  539.             },  {\n- }|FNAME2|{  MES(},
  540.                 {wait(60,{TimeOut},{)});
  541.                  Down3(@tail(@laststr,{  MES(},{)}));
  542.                  im({Yes})
  543.             },  {\n- }|FNAME3|{  MES(},
  544.                 {wait(60,{TimeOut},{)});
  545.                  Down3(@tail(@laststr,{  MES(},{)}));
  546.                  im({Yes})
  547.             },  {\n- }|FNAME4|{  MES(},
  548.                 {wait(60,{TimeOut},{)});
  549.                  Down3(@tail(@laststr,{  MES(},{)}));
  550.                  im({Yes})
  551.             },  {\n- MES(},
  552.                 {wait(60,{TimeOut},{)});
  553.                  Down3(@tail(@laststr,{- MES(},{)}));
  554.                  im({Yes})
  555.             });
  556.         });
  557.     };
  558.  
  559.     test(,,{\nFORUM>},{
  560.         footnote({ フォーラム(会議室)の受信処理をしています});
  561.         rec2(ForumDir|{\mestitle.log});
  562.         type({MES\n});
  563.         wait(30,{TimeOut},{\n>});
  564.         case(ccsset<>0,{Yes},{
  565.             type({MREAD});
  566.             case(ccsset<>{},{Yes},{type({ ROOM:}|ccsset)});
  567.             type({\n\n});
  568.             readall;
  569.         });
  570.         stoprec;
  571.         type({T\n});
  572.         wait(30,{TimeOut},{\nFORUM>});
  573.         footnote({});
  574.     })
  575.     };
  576.  
  577.     %Forum{
  578.     var f2[700];
  579.     var rtnset[50];
  580.     var rtnmes[3];
  581.     f2:=forum;
  582.     loop({
  583.         %fnset    @head(f2,{/});
  584.         %fname    @head(fnset,{(});
  585.         %ccsset    @body(fnset,{(},{)});
  586.         %ForumDir    logd|{\}|fname;
  587.         f2:=@body(f2,{/});
  588.         %mae    @head(rtn2,fname);
  589.         %ushiro    @body(rtn2,fname);
  590.         rtnset:={};
  591.         case(@getchar(ushiro,1,1)={(},{Yes},{
  592.             rtnset:=@body(@head(ushiro,{/}),{(},{)});
  593.             rtn2:=mae|@body(ushiro,{/});
  594.         });
  595.         footnote({ フォーラムの受信処理をしています});
  596.         GoForum(fname);
  597.         CCS(ccsset);
  598.         case(rtnset<>{} && rtnset<>0,{Yes},{
  599.             footnote({ 未読発言のタイトル一覧を受信しています});
  600.             loop({
  601.                 rtnmes:=@head(rtnset,{,});
  602.                 rtnset:=@body(rtnset,{,});
  603.                 case(@nochar(rtnmes),{1},{rtnmes:={0}|rtnmes});
  604.                 TypeRTN(rtnmes);
  605.                 im(rtnset<>{});
  606.             });
  607.         });
  608.         im(f2<>{});
  609.     });
  610.     };
  611.  
  612.     %RTN{
  613.     var rtnset[50];
  614.     var rtnmes[3];
  615.     loop({
  616.         %fnset    @head(rtn2,{/});
  617.         %fname    @head(fnset,{(});
  618.         %ForumDir    logd|{\}|fname;
  619.         rtnset:=@body(fnset,{(},{)});
  620.         rtn2:=@body(rtn2,{/});
  621.         footnote({ 未読発言のタイトル一覧を受信しています});
  622.         GoForum(fname);
  623.         mkdir(logd,fname);
  624.         rec2(ForumDir|{\mestitle.log});
  625.         type({MES\n});
  626.         wait(30,{TimeOut},{\n>});
  627.         stoprec;
  628.         case(rtnset<>{} && rtnset<>0,{Yes},{
  629.             loop({
  630.                 rtnmes:=@head(rtnset,{,});
  631.                 rtnset:=@body(rtnset,{,});
  632.                 case(@nochar(rtnmes),{1},{rtnmes:={0}|rtnmes});
  633.                 TypeRTN(rtnmes);
  634.                 im(rtnset<>{});
  635.             });
  636.         });
  637.         im(rtn2<>{});
  638.     });
  639.    };
  640.  
  641. /**********   Niftyの課金情報を見る   **********/
  642.     %bill{
  643.     rec2(logd|{\BILL.LOG});
  644.     type({GO BILL\n});
  645.     wait(30,TimeOut,{\n>});
  646.     Where1:={BILL};
  647.     Where2:={};
  648.     Where3:={};
  649.     type({2\n});
  650.     wait(60,TimeOut,{\n>});
  651.     stoprec;
  652.     write(logd|{\BILL.LOG},{\n(}|@daylong|{)});
  653.     };
  654.  
  655.     %PostText{
  656.     %flag    {POST};
  657.     DELTXT;
  658.     };
  659.  
  660.     %DelOldText{
  661.     %flag    {DEL};
  662.     DELTXT;
  663.     };
  664.  
  665.     %Login{
  666.     case(ReLogin<>{Yes},{Yes},{
  667.         footnote({ NIFTY-Serveへ電話をかけています});
  668.         DIAL;
  669.         footnote({ NIFTY-Serveの前処理をしています});
  670.     });
  671.     case(id,{},{
  672.         select({ ユーザIDの設定がありません.後は手動で?},10,stop,
  673.         {やります},stop,{電話を切ります},{discon; stop})
  674.     });
  675.     case(ReLogin<>{Yes},{Yes},{
  676.         wait(20,{TimeOut},{Connection-ID  --->});
  677.         type({SVC\n});
  678.     });
  679.     wait(20,{TimeOut},{Enter User-ID  --->});
  680.     type(id|{\n});
  681.     wait(20,{TimeOut},{Enter Password --->});
  682.     delfile(logd|{\title}|{.log});
  683.     setcdir2(logd);
  684.     receive(logd|{\title}|{.log});
  685.     case(pass,
  686.     {},{    footnote({ パスワードをキーボードから入れてください});
  687.         sendtype({Ch/2});
  688.         chat({Yes});
  689.         wait(300,{TimeOut},{ようこそ});
  690.         chat({No});
  691.         sendtype({Line});
  692.         footnote({ 前置きの処理をしています});
  693.     },,{    type(pass|{\n});
  694.     });
  695.     contime:=@tail(@daylong,{:});
  696.     wait(30,{TimeOut},{\n>}); 
  697.     stoprec;
  698. /*    type({SET DLM ON\n});
  699.     wait(30,{TimeOut},{\n>}); */
  700.     status:={ON};
  701.     ReLogin:={No};
  702.     };
  703.  
  704.     %SendList{
  705.     case(Where1<>{MAIL},{Yes},{GoMail});
  706.     rec2(logd|{\MAIL\MAIL_SDL.LOG});
  707.     type({SDL\n});
  708.     wait(300,{TimeOut},{\nMAIL>},{stoprec});
  709.     };
  710.  
  711.     %Mail{
  712.     %prompt @tail(@laststr,{\n});
  713.     var check[6];
  714.     footnote({ メールの受信処理をしています});
  715.     type({MCHECK\n});
  716.     case(mail,
  717.     {NEW},{     check:={未読分};
  718.     },{ALL},{check:={届いて};
  719.     });
  720.     wait(30,{TimeOut},
  721.          {\n}|prompt,,
  722.          {\n>},,
  723.          check,{MailDown({\n}|prompt)}
  724.         );
  725.     /*SendList;*/
  726.     };
  727.  
  728.     %Logout{
  729.     case(BILL,
  730.     {OK},{
  731.         footnote({ NIFTYの課金情報を参照しています});
  732.         bill;
  733.     },{P},{
  734.         nowtime:=@tail(@daylong,{:});
  735.         case(contime>nowtime,
  736.         {Yes},{    sectime:=60+nowtime-contime;
  737.         },{No},{sectime:=nowtime-contime;
  738.         });
  739.         case(sectime<15,{Yes},{
  740.             footnote({ NIFTYの課金情報を参照しています});
  741.             bill;
  742.         });
  743.     });
  744.     footnote({ NIFTYの終了処理をしています});
  745.     type({bye\n});
  746.     wait(30,,{ありがとうございました。\n});
  747.     wait(5,,{\n*},{type({OFF\n}); wait(3,,{\nNO CARRIER})});
  748.     discon;
  749.     footnote({});
  750.     };
  751.  
  752.     %PreSEMI{
  753.     var return[3];
  754.     loop({SEMI; im(return<>{No})});
  755.     };
  756.  
  757. /**********   メイン処理   Call Telephone and Send Id ,Password   **********/
  758.  
  759.     stopbit(1);
  760.     xon({Yes});
  761.     rscs({Yes});
  762.     click({No});
  763.     nattou({Yes});
  764.     ctrl({Yes});
  765.     esc({Yes});
  766.     Where1:={};
  767.     Where2:={};
  768.     Where3:={};
  769.     FMesNO:={};
  770.     st:={None};
  771.     status:={OFF};
  772.     ReLogin:={No};
  773.     next:=({No});
  774.     rtn2:=rtn;
  775.     case(cugname<>{},{Yes},{Where4:={CUG}},{No},{Where4:={NIF}});
  776.     Where4o:=Where4;
  777.     account(logd|{\ACCOUNT.TXT},
  778.         {NIFTY-Serve  (}|@getchar(@daylong,12,3)|{)});
  779.     case(@filechk(IndexFName),{Yes},DelOldText);
  780.     case(proc={Semi},{Yes},PreSEMI,{No},Login);
  781.     case(proc<>{Semi},{Yes},{Mail});
  782.     case(proc={Down} || proc={Down2} || proc={Both} || proc={Both2},
  783.     {Yes},{    case( hp<>{},    {Yes},HP);
  784.         case( patio<>{},{Yes},Patio);
  785.         case( forum<>{},{Yes},Forum);
  786.         case( rtn2<>{},    {Yes},RTN);
  787.         case(@filechk(IndexFName),{Yes},{GETPROF;
  788.             case(next,{Yes},{DOWNLIB})});
  789.     });
  790.     case(proc={Up} || proc={Up2} || proc={Both} || proc={Both2},
  791.         {Yes},{UPTEXT; case(next,{Yes},{UPTEXT2})});
  792.     case(originalplt={Yes},{setcdir2(current); #ORIGINAL.PLT});
  793.     case(proc={Read},{Yes},DOWNLIB);
  794.     case(proc={Login},{Yes},MANUAL);
  795.     case(proc={Down2} || proc={Up2} || proc={Both2},{Yes},{Bell; PreSEMI});
  796.     case(proc<>{Semi} && proc<>{Down2} && proc<>{Up2} && proc<>{Both2},
  797.         {Yes},Logout);
  798.     case(@filechk(IndexFName),{Yes},PostText);
  799. };
  800.  
  801. setcdir2(logd);
  802. case(@diskrem < (50*1024),
  803. {Yes},{
  804.     select({ このディスクの残り容量(}|(@diskrem/1024)|{Kbyte)では不足です},
  805.         30,,{ 確  認 })
  806. },{No},{autoacc2;
  807. });
  808.